n = int(input())
# 读取输入并转换为整数列表
a = list(map(int, input().split()))

# 定义动态规划数组，dp[i] 表示以末位数字 i 结尾的最长接龙序列的长度
dp = [0] * 10

for num in a:
    num_str = str(num)
    first_digit = int(num_str[0])
    last_digit = int(num_str[-1])
    # 找到以当前数字首位数字结尾的最长接龙序列长度
    max_length = max(dp[first_digit], 0)
    # 更新以当前数字末位数字结尾的最长接龙序列长度
    dp[last_digit] = max(dp[last_digit], max_length + 1)

# 找到最长接龙序列的长度
max_sequence_length = max(dp)

# 计算最少删除的元素个数
result = n - max_sequence_length

print(result)